home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2000 #5
/
Amiga Plus CD - 2000 - No. 5.iso
/
Tools
/
Dev
/
fpc
/
oop
/
exectest.pas.bak
< prev
Wrap
Text File
|
2000-01-01
|
3KB
|
143 lines
PROGRAM test;
{
A small test of linklist unit.
nils.sjoholm@mailbox.swipnet.se
}
uses exec, execobject,strings;
VAR
Mylist : pList;
MyNode : pNode;
i : Longint;
temp : Longint;
buffer : PChar;
bufsize : Longint;
templist : pList;
myexec : pExecObject;
BEGIN
myexec := New(pExecObject,Create);
if not assigned(myexec) then begin
writeln('Couldn''t allocate ExecObject');
halt(20);
end;
myexec^.AddS('Monday');
myexec^.AddS('Tuesday');
myexec^.AddS('Wednesday');
myexec^.AddS('Thursday');
myexec^.AddS('Friday');
myexec^.AddS('Saterday');
MyNode := myexec^.AddS('Sunday');
if not assigned(MyNode) then begin
writeln('Can''t allocate memory for strings');
Dispose(myexec,Free);
halt(20);
end;
writeln;
WriteLN('This is the list');
myexec^.PrintList;
writeln;
WriteLN('Now we are going to remove the last node');
WriteLN('>> Press return');
readln;
myexec^.DeleteLast;
myexec^.PrintList;
writeln;
WriteLN('>> Press return to get the size of the list');
writeln;
readln;
WriteLN('The size of allocated list is ', myexec^.SizeOfList);
writeln;
writeln('Now we are going to print all strings' +#10+ 'in the list with the internal commands');
WriteLN('>> Press return');
readln;
i := myexec^.Count;
MyNode := myexec^.First;
FOR temp := 1 TO i DO BEGIN
WriteLN(MyNode^.ln_Name);
MyNode := myexec^.Next(MyNode);
END;
writeln;
WriteLN('We will move the last node to the top');
WriteLN('>> Press return');
readln;
MyNode := myexec^.Last;
myexec^.Top(MyNode);
myexec^.PrintList;
writeln;
WriteLN('We shall change the value in one node');
WriteLN('>> Press return');
readln;
MyNode := myexec^.First;
MyNode := myexec^.Next(MyNode);
myexec^.UpDateS(MyNode,'This is the new day');
myexec^.PrintList;
writeln;
MyNode := myexec^.Next(MyNode);
WriteLN('Now we delete one node');
WriteLN('>> Press return');
readln;
WriteLN('This node is going to be deleted ',myexec^.GetData(MyNode));
myexec^.Delete(MyNode);
myexec^.PrintList;
writeln;
WriteLN('Sort the list');
WriteLN('>> Press return');
readln;
myexec^.Sort;
myexec^.PrintList;
writeln;
writeln('Search for a node, in this case Friday');
WriteLN('>> Press return');
readln;
MyNode := myexec^.FindS('Friday');
IF assigned(MyNode) THEN BEGIN
WriteLN('found the node ',MyNode^.ln_Name);
END ELSE BEGIN
WriteLN('Node not found');
END;
writeln;
WriteLN('And now copy the list to a stringbuffer' +#10+ 'and print it');
WriteLN('>> Press return');
readln;
bufsize := myexec^.SizeOfList;
buffer := StrAlloc(bufsize);
myexec^.ToBuffer(buffer);
WriteLN(buffer);
writeln;
WriteLN('Press return to destroy the list');
readln;
Dispose(myexec,Free);
writeln;
WriteLN('All done');
END.